<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>InfDiscovery</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
<link rel="home" href="index.html" title="libinfinity-0.4 Reference Manual">
<link rel="up" href="ch02.html" title="Common libinfinity API">
<link rel="prev" href="InfUser.html" title="InfUser">
<link rel="next" href="InfLocalPublisher.html" title="InfLocalPublisher">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="InfUser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libinfinity-0.4 Reference Manual</th>
<td><a accesskey="n" href="InfLocalPublisher.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#InfDiscovery.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#InfDiscovery.description" class="shortcut">Description</a>
                   | 
                  <a href="#InfDiscovery.object-hierarchy" class="shortcut">Object Hierarchy</a>
                   | 
                  <a href="#InfDiscovery.prerequisites" class="shortcut">Prerequisites</a>
                   | 
                  <a href="#InfDiscovery.implementations" class="shortcut">Known Implementations</a>
                   | 
                  <a href="#InfDiscovery.signals" class="shortcut">Signals</a>
</td></tr>
</table>
<div class="refentry" title="InfDiscovery">
<a name="InfDiscovery"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="InfDiscovery.top_of_page"></a>InfDiscovery</span></h2>
<p>InfDiscovery — Discovery of remote services</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="InfDiscovery.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;libinfinity/common/inf-discovery.h&gt;

                    <a class="link" href="InfDiscovery.html#InfDiscovery-struct" title="InfDiscovery">InfDiscovery</a>;
                    <a class="link" href="InfDiscovery.html#InfDiscoveryIface" title="InfDiscoveryIface">InfDiscoveryIface</a>;
                    <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo">InfDiscoveryInfo</a>;
<span class="returnvalue">void</span>                (<a class="link" href="InfDiscovery.html#InfDiscoveryResolvCompleteFunc" title="InfDiscoveryResolvCompleteFunc ()">*InfDiscoveryResolvCompleteFunc</a>)   (<em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *connection</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<span class="returnvalue">void</span>                (<a class="link" href="InfDiscovery.html#InfDiscoveryResolvErrorFunc" title="InfDiscoveryResolvErrorFunc ()">*InfDiscoveryResolvErrorFunc</a>)      (<em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfDiscovery.html#inf-discovery-discover" title="inf_discovery_discover ()">inf_discovery_discover</a>              (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> *            <a class="link" href="InfDiscovery.html#inf-discovery-get-discovered" title="inf_discovery_get_discovered ()">inf_discovery_get_discovered</a>        (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfDiscovery.html#inf-discovery-resolve" title="inf_discovery_resolve ()">inf_discovery_resolve</a>               (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryResolvCompleteFunc" title="InfDiscoveryResolvCompleteFunc ()"><span class="type">InfDiscoveryResolvCompleteFunc</span></a> complete_func</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryResolvErrorFunc" title="InfDiscoveryResolvErrorFunc ()"><span class="type">InfDiscoveryResolvErrorFunc</span></a> error_func</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="InfDiscovery.html#inf-discovery-info-get-service-name" title="inf_discovery_info_get_service_name ()">inf_discovery_info_get_service_name</a> (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="InfDiscovery.html#inf-discovery-info-get-service-type" title="inf_discovery_info_get_service_type ()">inf_discovery_info_get_service_type</a> (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfDiscovery.html#inf-discovery-discovered" title="inf_discovery_discovered ()">inf_discovery_discovered</a>            (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfDiscovery.html#inf-discovery-undiscovered" title="inf_discovery_undiscovered ()">inf_discovery_undiscovered</a>          (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>);
</pre>
</div>
<div class="refsect1" title="Object Hierarchy">
<a name="InfDiscovery.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  GInterface
   +----InfDiscovery
</pre>
</div>
<div class="refsect1" title="Prerequisites">
<a name="InfDiscovery.prerequisites"></a><h2>Prerequisites</h2>
<p>
InfDiscovery requires
 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
</div>
<div class="refsect1" title="Known Implementations">
<a name="InfDiscovery.implementations"></a><h2>Known Implementations</h2>
<p>
InfDiscovery is implemented by
 <a class="link" href="InfDiscoveryAvahi.html" title="InfDiscoveryAvahi">InfDiscoveryAvahi</a>.</p>
</div>
<div class="refsect1" title="Signals">
<a name="InfDiscovery.signals"></a><h2>Signals</h2>
<pre class="synopsis">
  "<a class="link" href="InfDiscovery.html#InfDiscovery-discovered" title='The "discovered" signal'>discovered</a>"                                     : Run Last / Has Details
  "<a class="link" href="InfDiscovery.html#InfDiscovery-undiscovered" title='The "undiscovered" signal'>undiscovered</a>"                                   : Run Last / Has Details
</pre>
</div>
<div class="refsect1" title="Description">
<a name="InfDiscovery.description"></a><h2>Description</h2>
<p>
<a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> provides a common interface for the discovery of services.
Discovered services are represented by <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> objects
and can be used to query the name of the discovered service.
</p>
<p>
To create a connection to the host providing a discovered service, use
<a class="link" href="InfDiscovery.html#inf-discovery-resolve" title="inf_discovery_resolve ()"><code class="function">inf_discovery_resolve()</code></a>.
</p>
</div>
<div class="refsect1" title="Details">
<a name="InfDiscovery.details"></a><h2>Details</h2>
<div class="refsect2" title="InfDiscovery">
<a name="InfDiscovery-struct"></a><h3>InfDiscovery</h3>
<pre class="programlisting">typedef struct _InfDiscovery InfDiscovery;</pre>
<p>
<a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> is an opaque data type. You should only access it
via the public API functions.
</p>
</div>
<hr>
<div class="refsect2" title="InfDiscoveryIface">
<a name="InfDiscoveryIface"></a><h3>InfDiscoveryIface</h3>
<pre class="programlisting">typedef struct {
  void (*discover)(InfDiscovery* discovery,
                   const gchar* type);

  GSList* (*get_discovered)(InfDiscovery* discovery,
                            const gchar* type);

  void (*resolve)(InfDiscovery* discovery,
                  InfDiscoveryInfo* info,
                  InfDiscoveryResolvCompleteFunc complete_func,
                  InfDiscoveryResolvErrorFunc error_func,
                  gpointer user_data);

  gchar*(*info_get_service_name)(InfDiscovery* discovery,
                                 InfDiscoveryInfo* info);

  const gchar*(*info_get_service_type)(InfDiscovery* discovery,
                                       InfDiscoveryInfo* info);

  /* Signals */
  void (*discovered)(InfDiscovery* discovery,
                     InfDiscoveryInfo* info);

  void (*undiscovered)(InfDiscovery* discovery,
                       InfDiscoveryInfo* info);
} InfDiscoveryIface;
</pre>
<p>
The virtual methods and default signal handlers of <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a>.
Implementing these allows discovering infinote servers.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfDiscoveryIface.discover"></a>discover</code></em> ()</span></p></td>
<td>Virtual function to start discovery of services of the given
type. If the discovery was already started ealier, then this function does
nothing.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfDiscoveryIface.get-discovered"></a>get_discovered</code></em> ()</span></p></td>
<td>Virtual function to retrieve a list of
<a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a>s that represent discovered services.
It needs to be freed by the caller via <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#g-slist-free"><code class="function">g_slist_free()</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfDiscoveryIface.resolve"></a>resolve</code></em> ()</span></p></td>
<td>Virtual function that attempts to resolve the given discovery
info. It guarantees to either call <em class="parameter"><code>complete_func</code></em> or <em class="parameter"><code>error_func</code></em> when the
process has finished.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfDiscoveryIface.info-get-service-name"></a>info_get_service_name</code></em> ()</span></p></td>
<td>Returns the service name of the given
<a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> as a new string, to be freed by the caller with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfDiscoveryIface.info-get-service-type"></a>info_get_service_type</code></em> ()</span></p></td>
<td>Returns the type of the discovered service of the
given <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> as a static string.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfDiscoveryIface.discovered"></a>discovered</code></em> ()</span></p></td>
<td>Default signal handler for the <a class="link" href="InfDiscovery.html#InfDiscovery-discovered" title='The "discovered" signal'><span class="type">"discovered"</span></a>
signal.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfDiscoveryIface.undiscovered"></a>undiscovered</code></em> ()</span></p></td>
<td>Default signal handler for the <a class="link" href="InfDiscovery.html#InfDiscovery-undiscovered" title='The "undiscovered" signal'><span class="type">"undiscovered"</span></a>
signal.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="InfDiscoveryInfo">
<a name="InfDiscoveryInfo"></a><h3>InfDiscoveryInfo</h3>
<pre class="programlisting">typedef struct _InfDiscoveryInfo InfDiscoveryInfo;</pre>
<p>
<a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> is an opaque data type. You should only access it
via the public API functions.
</p>
</div>
<hr>
<div class="refsect2" title="InfDiscoveryResolvCompleteFunc ()">
<a name="InfDiscoveryResolvCompleteFunc"></a><h3>InfDiscoveryResolvCompleteFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                (*InfDiscoveryResolvCompleteFunc)   (<em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *connection</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
This callback is called when a call to <a class="link" href="InfDiscovery.html#inf-discovery-resolve" title="inf_discovery_resolve ()"><code class="function">inf_discovery_resolve()</code></a> finished
successfully.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>The resolved <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
<td>The resulting <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>The user_data passed to <a class="link" href="InfDiscovery.html#inf-discovery-resolve" title="inf_discovery_resolve ()"><code class="function">inf_discovery_resolve()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="InfDiscoveryResolvErrorFunc ()">
<a name="InfDiscoveryResolvErrorFunc"></a><h3>InfDiscoveryResolvErrorFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                (*InfDiscoveryResolvErrorFunc)      (<em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
This callback is called when a call to <a class="link" href="InfDiscovery.html#inf-discovery-resolve" title="inf_discovery_resolve ()"><code class="function">inf_discovery_resolve()</code></a> failed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>The resolved <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Reason for the failure.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>The user_data passed to <a class="link" href="InfDiscovery.html#inf-discovery-resolve" title="inf_discovery_resolve ()"><code class="function">inf_discovery_resolve()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_discovery_discover ()">
<a name="inf-discovery-discover"></a><h3>inf_discovery_discover ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_discovery_discover              (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>);</pre>
<p>
Starts the discovery of the given service type. Whenever a service of
this type is discovered, the "discovered" signal is emitted. If the
service disappears, the "undiscovered" signal is emitted. This can be
called more than once for the same type, but only the first call has
an effect.
</p>
<p>
Note also that implementations of <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> might restrict the
service types that can be discovered.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discovery</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>The service type to discover.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_discovery_get_discovered ()">
<a name="inf-discovery-get-discovered"></a><h3>inf_discovery_get_discovered ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> *            inf_discovery_get_discovered        (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>);</pre>
<p>
Returns a list of discovered <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> for the given type.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discovery</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>The service type of which to get discovered infos for.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A newly allocated list that needs to be freed with
<a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#g-slist-free"><code class="function">g_slist_free()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_discovery_resolve ()">
<a name="inf-discovery-resolve"></a><h3>inf_discovery_resolve ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_discovery_resolve               (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryResolvCompleteFunc" title="InfDiscoveryResolvCompleteFunc ()"><span class="type">InfDiscoveryResolvCompleteFunc</span></a> complete_func</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryResolvErrorFunc" title="InfDiscoveryResolvErrorFunc ()"><span class="type">InfDiscoveryResolvErrorFunc</span></a> error_func</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
Attempts to resolve <em class="parameter"><code>info</code></em>. Resolving a <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> means creating
a <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> to the publisher. The connection might not be
open when <em class="parameter"><code>complete_func</code></em> runs. This will call either <em class="parameter"><code>complete_func</code></em>
or <em class="parameter"><code>error_func</code></em>, but not both.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discovery</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> discovered by <em class="parameter"><code>discovery</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>complete_func</code></em> :</span></p></td>
<td>A callback that will be called when the resolving process
has completed.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error_func</code></em> :</span></p></td>
<td>A callback that will be called when an error has occured.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>Extra data to pass to <em class="parameter"><code>complete_func</code></em> and <em class="parameter"><code>error_func</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_discovery_info_get_service_name ()">
<a name="inf-discovery-info-get-service-name"></a><h3>inf_discovery_info_get_service_name ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             inf_discovery_info_get_service_name (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>);</pre>
<p>
Returns the service name of the discovered <em class="parameter"><code>info</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discovery</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> discovered by <em class="parameter"><code>discovery</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A string owned by <em class="parameter"><code>discovery</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_discovery_info_get_service_type ()">
<a name="inf-discovery-info-get-service-type"></a><h3>inf_discovery_info_get_service_type ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       inf_discovery_info_get_service_type (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>);</pre>
<p>
Returns the service type of the discovered <em class="parameter"><code>info</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discovery</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> discovered by <em class="parameter"><code>discovery</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A string owned by <em class="parameter"><code>discovery</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_discovery_discovered ()">
<a name="inf-discovery-discovered"></a><h3>inf_discovery_discovered ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_discovery_discovered            (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>);</pre>
<p>
Emits the "discovered" signal on <em class="parameter"><code>discovery</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discovery</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>The discovered <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_discovery_undiscovered ()">
<a name="inf-discovery-undiscovered"></a><h3>inf_discovery_undiscovered ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_discovery_undiscovered          (<em class="parameter"><code><a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discovery</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> *info</code></em>);</pre>
<p>
Emits the "undiscovered" signal on <em class="parameter"><code>discovery</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discovery</code></em> :</span></p></td>
<td>A <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>The undiscovered <em class="parameter"><code>InfDiscoveryInfo</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" title="Signal Details">
<a name="InfDiscovery.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2" title='The "discovered" signal'>
<a name="InfDiscovery-discovered"></a><h3>The <code class="literal">"discovered"</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discoverer,
                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      info,
                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)       : Run Last / Has Details</pre>
<p>
This signal is detailed. The detail is the name of the service that has
been discovered, so you can connect to
"discovered::<span class="emphasis"><em>my-service-name</em></span>" if you are
only interested in a particular service.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
<td>The <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> object discovering something
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>The <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> describing the discovered service
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title='The "undiscovered" signal'>
<a name="InfDiscovery-undiscovered"></a><h3>The <code class="literal">"undiscovered"</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> *discoverer,
                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      info,
                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)       : Run Last / Has Details</pre>
<p>
This signal is emitted if a previously discovered service is no longer
available.
</p>
<p>
This signal is detailed. The detail is the name of the service that has
been undiscovered, so you can connect to
"undiscovered::<span class="emphasis"><em>my-service-name</em></span>" if you
are only interested in a particular service.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
<td>The <a class="link" href="InfDiscovery.html" title="InfDiscovery"><span class="type">InfDiscovery</span></a> object undiscovering something
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>The <a class="link" href="InfDiscovery.html#InfDiscoveryInfo" title="InfDiscoveryInfo"><span class="type">InfDiscoveryInfo</span></a> describing the undiscovered service
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" title="See Also">
<a name="InfDiscovery.see-also"></a><h2>See Also</h2>
<a class="link" href="InfDiscoveryAvahi.html" title="InfDiscoveryAvahi"><span class="type">InfDiscoveryAvahi</span></a>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.15</div>
</body>
</html>